home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d7 / boyan5a.arc / HOST.BSC < prev    next >
Text File  |  1991-05-28  |  19KB  |  474 lines

  1. \\ BOYAN HOST MODE Version 5.0.
  2. \\ Please see the BOYAN User's Manual for complete documentation!
  3.  
  4. |InitHost
  5. \IE-%AN,HOST[ \AM[H] ]
  6. \IE-%AN,HOST[\DM24[Unable to load HOST module.]\AB]
  7. \ZS  \ST[Invoking host in %V3 mode...]
  8. \DM1[ ╔═══════════════════════════════════════╗ ]
  9. \DM2[ ║     Host Mode Initializing...         ║ ]
  10. \DM3[ ╠═══════════════════════════════════════╣ ]
  11. \DM4[ ║     Press <Tab> for Sysop Menu.       ║ ]
  12. \DM5[ ║     Press <Esc> to quit Host Mode.    ║ ]
  13. \DM6[ ╚═══════════════════════════════════════╝ ]
  14. \CP[None] \BB- \AV[0] \KO[0] \SP[0] \SL[0]  \\ initialize host settings
  15. \SVU[%UN]  \IE+%UF,OFF[\SVU[]]       \\ save current usage file name in %VU
  16. \SVR[%AP]                            \\ save previous action module in %VR
  17. \UF+[%V4`HOST.USE]                   \\ use HOST.USE as the usage log file
  18. \UM[---- Host Mode Invoked -----]
  19. \FE+%B:macro#7.hos[\GB[WaitForCall]] \\ If macro #7 already saved, go on...
  20. \MV1[7]  \AF%B:macro#7.hos[%V1]      \\ Else store in macro#7.hos, and set new:
  21. \SM7[\II+HOST,"%SC[\AT-[\GB[Cycle"] \EM"]"]  \SC[Host;Restore7"] \MA[7"]  "\"\ used by host]
  22. \GB[WaitForCall]
  23.  
  24. |WaitForCall
  25. \EC- \LF- \KO[0] \SVN[] \SVO[waiting]
  26. \IV3-MODEM[\GB[Welcome]]  \CA+[\GB[Welcome]]
  27. \CS[%MM] \MA[3]                      \\ Change speed to modem's maximum.
  28. ATX4S0=0{                            \\ Tell modem not to auto-answer.
  29. \WF[OK]~~                            \\ Expect "OK" message back from modem.
  30. \DM1[ ╔═══════════════════════════════════════╗ ]
  31. \DM2[ ║     Host Mode Waiting for RING...     ║ ]
  32. \DM3[ ╠═══════════════════════════════════════╣ ]
  33. \DM4[ ║     Press <Tab> for Sysop Menu.       ║ ]
  34. \DM5[ ║     Press <Esc> to quit Host Mode.    ║ ]
  35. \DM6[ ╚═══════════════════════════════════════╝ ]
  36. \TO[255]  \WF[RING]                  \\ Wait forever for "RING"
  37. \TO[7]  \SV0[%V2]  \+V0[-1]          \\ let %V0 = tot. number of rings - 1
  38. \RE%V0[\WF[RING] \IW-[\GB[WaitForCall]] ]  \\ Wait for %V0 additional rings.
  39. ~ATA{                                \\ Tell modem to establish connection.
  40. \TO[30]
  41. \IE+%AD,ON[\WF[CONNECT] | \WF[00]]~  \\ Wait for "CONNECT"/"00" message
  42. \IW-[\GB[Cycle]]                     \\ If not found, cycle for next call.
  43. \IE-%AD,ON[\GB[Welcome]]             \\ If auto-detect baud rate OFF, welcome.
  44. \IF+38[\CS[38400] \GB[Welcome]]      \\ Otherwise,
  45. \IF+19[\CS[19200] \GB[Welcome]]      \\     scan "connect xxx" message,
  46. \IF+96[\CS[9600] \GB[Welcome]]       \\     set the port speed appropriately,
  47. \IF+48[\CS[4800] \GB[Welcome]]       \\     and go to the Welcome block.
  48. \IF+24[\CS[2400] \GB[Welcome]]
  49. \IF+12[\CS[1200] \GB[Welcome]]
  50. \CS[300] \GB[Welcome]                \\ ...use 300 baud if just "CONNECT"
  51.  
  52. |Welcome
  53. \EC+ \LF+
  54. \IV3+MODEM[\AV[6] \AL2[1] \AV[0] \PA[3] \PL]
  55. {{{
  56. Welcome to BOYAN 5.0 Host!{{
  57. Press <Enter> to begin: `
  58. \DM1[ ╔═══════════════════════════════════════╗ ]
  59. \DM2[ ║     Host Mode Logging user in...      ║ ]
  60. \DM3[ ╠═══════════════════════════════════════╣ ]
  61. \DM4[ ║     Press <Tab> for Sysop Menu.       ║ ]
  62. \DM5[ ║     Press <Esc> to quit Host Mode.    ║ ]
  63. \DM6[ ╚═══════════════════════════════════════╝ ]
  64. \TO[40] \RV0[0] \SVX[OFF]
  65. \IW-[\GB[LogOff]]                    \\ if no response, log user off!
  66. \BL[GetName&PW]
  67. \IVN+[Try again.{  \BL[GetName&PW]]
  68. \IVN+[Last try!{   \BL[GetName&PW]]
  69. \IVN+[\GB[WrongPassword]]
  70. \SN[%VN]  \SVO[in-use]
  71. Welcome online, %VF!  Your user level is %VL.{
  72. \FE+%V4`welcome.msg[\UF- \ULa-[%V4`welcome.msg] \UF+]  \\ Send "WELCOME.MSG"
  73. \GB[Menu]
  74.  
  75. |GetName&PW
  76. \SV0[] \SVP[] \SVL[0] \SVE[] {
  77. Enter your FIRST & LAST name: `
  78. \RVN[50]  \IVN+[\EB]
  79. \SVF[%VN]  \II+ ,%VF[\LVF[%IM]]            \\ set %VF = user's First name
  80. \II+;,%VN[\SV0[%VN] \DV0[%II] \LVN[%IM] ]  \\ parse "First Last;password"
  81. Searching  \SVI[40] \BL[SearchUserBase]{
  82. \IVI+111[\GB[UserNotFound]]
  83. \IVP+[No password for you in database!{ \SVN[] \EB ]
  84. \UM[Logged in Host User %VI: %VN]
  85. \IV0+[Enter your password: `\RV0*[15]]
  86. \IV0-%VP[\SVN[]]                           \\ If password wrong, unset VN.
  87.  
  88. |SearchUserBase                      \\ Search for %VN; set %VP=pwd, %VL=level.
  89. \RE[\+VI[1] \IVI+111[\EB] .\TVA[%VI] \II+;,%VA[\EM]]  \\ loop until `;' in %VA
  90. \SVP[%VA]  \LVA[%IM]                 \\ trim off name portion into %VA
  91. \IVA-%VN[\GB[SearchUserBase] |else \SVN[%VA]]
  92. \DVP[%II]  \II-;,%VP[\EB]            \\ if no ';' in remainder, we're done.
  93. \SVL[%VP]  \LVP[%IM]                 \\ trim off only password portion into %VP
  94. \DVL[%II]  \II-;,%VL[\EB]
  95. \SVE[%VL]  \LVL[%IM]                 \\ trim off user level portion into %VL
  96. \DVE[%II]                            \\ %VE contains rest of user base entry.
  97.  
  98. |UserNotFound
  99. Did you enter your name correctly as '%VN' (y/N) ? \RV8[1]
  100. \IV8-Y[\SVN[] \EB]
  101. \SV8[41] \SVI[none]
  102. \RE[\TV9[%V8] \IV9+[\SVI[%V8] \EM] \+V8[1] ]  \\ search user base for blank #
  103. \IVI+none[Sorry, user base is full! {\EB]
  104. %VF, you will be registered as user #%VI.{
  105. Please choose a password for this system (asterisks will echo): `
  106. \RVP*[15]
  107. \IVP+[Blank passwords are not allowed.{{\GB[UserNotFound]]
  108. Type your password again to confirm: `
  109. \RV9*[15]
  110. \IE-%VP,%V9[Your passwords didn't match!{\GB[UserNotFound]]
  111. \UM[** New Host User %VI ** %VN, level %VL]
  112. \SVE[ first called on %MO/%DA/%YR at %HR:%MI]
  113. \TM%VI[%VN;%VP;%VL;%VE]              \\ add entry to user base
  114.  
  115. |MENU
  116. \ST[ » Press <Tab> for Sysop Menu. «] \KO[0]
  117. \IVL+0[\svc[LRFZCONXG]]     \\ sets the available commands for each user level
  118. \IVL+1[\svc[LERFDUZCONXG]]
  119. \IVL+2[\svc[LERKFDUZCOJNXGS]]
  120. \IVX+ON[Boyan-Host Expert Menu <%VC> {  \GB[MenuDispatch] ]
  121. {`````````============================{
  122. ``````````  Boyan-Host Command Menu{
  123. ``````````----------------------------{
  124. \II+L,%VC[ <L> List message titles{]
  125. \II+E,%VC[ <E> Enter a new message{]
  126. \II+R,%VC[ <R> Read a message{]
  127. \II+K,%VC[ <K> Kill a message{]
  128. \II+C,%VC[ <C> Comment to operator{]
  129. ``````````----------------------------{
  130. \II+F,%VC[ <F> File listing{]
  131. \II+D,%VC[ <D> Download files{]
  132. \II+U,%VC[ <U> Upload files{]
  133. \II+Z,%VC[ <Z> ZIP file contents{]
  134. \II+J,%VC[ <J> Jump to DOS{]
  135. ``````````----------------------------{
  136. \II+O,%VC[ <O> Operator page{]
  137. \II+N,%VC[ <N> New password{]
  138. \II+X,%VC[ <X> Expert mode toggle{]
  139. \II+G,%VC[ <G> Goodbye{]
  140. \II+S,%VC[ <S> Shut down host!{]
  141. ``````````============================{
  142. \GB[MenuDispatch]
  143.  
  144. |MenuDispatch
  145. Your selection: `\RV0[1]
  146. \II-%V0,%VC[Sorry, <%V0> is not a valid option.{\GB[Menu]]
  147. \IV0+L[\GB[ListMsgs]]
  148. \IV0+E[\GB[EnterMsg]]
  149. \IV0+C[\GB[EnterComment]]
  150. \IV0+R[\GB[ReadMsg]]
  151. \IV0+K[\GB[KillMsg]]
  152. \IV0+F[\GB[ListFiles]]
  153. \IV0+D[\GB[Download]]
  154. \IV0+U[\GB[Upload]]
  155. \IV0+Z[\GB[ZipView]]
  156. \IV0+O[\GB[OperatorPage]]
  157. \IV0+J[\GB[Shell]]
  158. \IV0+N[\GB[NewPassword]
  159. \IV0+X[\GB[ToggleExpert]
  160. \IV0+G[\GB[LogOff]]
  161. \IV0+S[\GB[Shutdown]]
  162. \GB[Menu]
  163.  
  164. |ListMsgs
  165. Available messages:{
  166. \DC[dir %V4*.msg /W > %B:#hosttmp.fil] \\ use DOS to list messages to file
  167. \UF-  \ULa-[%B:#hosttmp.fil]  \UF+
  168. \GB[Menu]
  169.  
  170. |EnterMsg
  171. Type a name for your message (1-8 letters): ________^H^H^H^H^H^H^H^H
  172. \RV0[8]                              \\ read in message name of up to 8 chars
  173. \SV0[%V4%V0.msg]                     \\ make %V0 = full path\filename.msg
  174. \FE+%V0[That message already exists.{ \GB[Menu]]
  175. \GB[MsgHeader]
  176.  
  177. |EnterComment
  178. Leaving a private comment for the System Operator...{
  179. \SV0[%V4#comment.tmp]
  180. \FE+%V0[\DC[DEL %V0]]       \\ delete #comment.tmp if it already exists
  181. \GB[MsgHeader]
  182.  
  183. |MsgHeader
  184. \SV9[=========== From: %VN ==== %MO/%DA at %HR:%MI ===========]
  185. \AF%V0[%V9]
  186. \FE-%V0[Unable to create message file %V0.{  \GB[Menu]]
  187. \AF%V0[]
  188. Enter your message.  Hit <Return> on empty line when message is complete.{{
  189. %V9{{
  190. \TO[100]                             \\ set 100-second timeout for each line
  191. \SV9[1]                              \\ line number counter, starts at 1
  192. \GB[GetMsgLines]
  193.  
  194. |GetMsgLines
  195. \RE[%V9>"  \RV8+[70]  \IV8+[\EM]  \AF%V0[%V8]  \+V9[1]]
  196. \GB[EnterOptions]
  197.  
  198. |EnterOptions
  199. {Message options:  [A]bort, [C]ontinue, [L]ist, or [S]ave ? `
  200. \RV8[1]
  201. \IV8+A[\DC[del %V0]  Message aborted.{  \GB[Menu] ]
  202. \IV8+S[\IV0+%V4#comment.tmp[\GB[SaveComment]]]
  203. \IV8+S[Message saved.{  \UM[| Posted %V0]  \GB[Menu] ]
  204. \IV8+C[\GB[GetMsgLines]]
  205. \IV8+L[{ \UF- \ULA-[%V0] \UF+]
  206. \GB[EnterOptions]
  207.  
  208. |SaveComment
  209. Comment saved.{
  210. \UM[| Left comment to operator]
  211. \AF%V0[]
  212. \SV1[%V4`COMMENTS.HOS]
  213. \FE-%V1[\DC[ren %V0 COMMENTS.HOS] | \DC[type %V0 >> %V1] \DC[del %V0] ]
  214. \GB[Menu]
  215.  
  216. |ReadMsg
  217. Name of message to read: `\RV0[8]
  218. \SV0[%V4`%V0.msg]                    \\ expand name to path\filename.msg
  219. \FE-%V0[That message does not exist.{ \GB[Menu]]
  220. \UF-  \ULa-[%V0]  \UF+               \\ send file if it exists
  221. \GB[Menu]
  222.  
  223. |KillMsg
  224. Name of message to kill: `\RV0[8]
  225. \SV0[%V4%V0.msg]                     \\ expand name to path\filename.msg
  226. \FE-%V0[That message does not exist.{ \GB[Menu]]
  227. \DC[DEL %V0]
  228. Message file %V0 deleted.{
  229. \GB[Menu]
  230.  
  231. |ToggleExpert
  232. \IVX+ON[\SVX[OFF] |ELSE \SVX[ON]]
  233. \GB[Menu]
  234.  
  235. |ListFiles                           \\ list files in host directory
  236. Files available for downloading:{
  237. \DC[dir %V5*.* > %B:#hosttmp.fil]    \\ use DOS to create list in temp. file
  238. \UF-  \ULa-[%B:#hosttmp.fil]  \UF+
  239. \GB[Menu]
  240.  
  241. |Download
  242. \BL[SetProtocol]                     \\ selected protocol stored in %V9
  243. \IV9+Q[\GB[Menu]]                    \\ back to files menu if no protocol
  244. Enter name of file to download: `
  245. \RV0[38]{                            \\ read filename into %V0
  246. \II+"\,%V0[\IVL-2[\GB[Menu]]]        \\ need user level = 2 if "\" in filename
  247. \II-"\,%V0[\SV0[%V5%V0]]             \\ Otherwise, add host file path to name.
  248. \II-*,%V0[\II-?,%V0[\FE-%V0[File not found.{ \GB[Menu] ]]]
  249. Sending:  %V0{
  250. Protocol: <%V9>{
  251. Start the download on your end now.{
  252. \IV9+A[Press <Return> when ready: \WL{] \\ expect <CR> if ASCII download
  253. \UL%V9-[%V0]                         \\ send file %V0 using protocol %V9
  254. \IV9+A[^K]                           \\ send <Ctrl-K> to close ASCII download
  255. { Download `\IT+[successful. |ELSE unsuccessful.]  {
  256. \GB[Menu]
  257.  
  258. |Upload
  259. \BL[SetProtocol]                     \\ selected protocol stored in %V9
  260. \IV9+Q[\GB[Menu]]                    \\ back to files menu if no protocol
  261. Enter name of file to upload: `
  262. \RV0[38]{
  263. \IV0+[\GB[Menu]]                     \\ back to menu if no filename entered
  264. \II+"\,%V0[\IVL-2[\GB[Menu]]]        \\ if "\" in filename, require level 2
  265. \II-"\,%V0[\SV0[%V5%V0]]             \\ Otherwise, add host file path to name.
  266. \II-.,%V0[\SV0[%V0.]]                \\ Add "." to filename if not there
  267. \FE+%V0[File already exists.{ \GB[Menu]] \\ go back if file already here
  268. Receiving: %V0{
  269. Protocol:  [%V9]{
  270. Start the upload on your end now.{
  271. \PA[3]                               \\ wait 3 secs before expecting file
  272. \DL%V9-[%V0]                         \\ receive file %V0 using protocol %V9
  273. { Upload `\IT+[successful. |ELSE unsuccessful.]  {
  274. \GB[Menu]
  275.  
  276. |SetProtocol            \\ returns the protocol letter selected, in %V9
  277. \SV8[AXC1YG]                       \\ set %V8=all possible protocol letters
  278. \IP+K[\SV8[%V8`K]]                 \\ add 'K' to list if Kermit available
  279. \IP+L[\SV8[%V8`L]]                 \\ add 'L' to list if Megalink available
  280. \IP+P[\SV8[%V8`P]]                 \\ add 'P' to list if MPt available
  281. \IP+S[\SV8[%V8`S]]                 \\ add 'S' to list if Sealink available
  282. \IP+Z[\SV8[%V8`Z]]                 \\ add 'Z' to list if Zmodem available
  283. ``````````=================={
  284. `````````` Protocol Choices{
  285. ``````````------------------{
  286. \II+A,%V8[ <A> ASCII{]
  287. \II+C,%V8[ <C> CRC-Xmodem{]
  288. \II+G,%V8[ <G> G-Ymodem{]
  289. \II+K,%V8[ <K> Kermit{]
  290. \II+L,%V8[ <L> Megalink{]
  291. \II+P,%V8[ <P> MPt{]
  292. \II+S,%V8[ <S> Sealink{]
  293. \II+X,%V8[ <X> Xmodem{]
  294. \II+Y,%V8[ <Y> Ymodem{]
  295. \II+Z,%V8[ <Z> Zmodem{]
  296. \II+1,%V8[ <1> 1K-Xmodem{]
  297. `````````` <Q> QUIT{
  298. ``````````=================={
  299. Your selection: `\RV9[1]
  300. \IV9+Q[\EB]
  301. \II+%V9,%V8[\EB]                   \\ if selection is ok, then end block.
  302. Sorry, protocol <%V9> is not available.{
  303. \GB[SetProtocol]
  304.  
  305. |ZipView
  306. Available .ZIP files:{
  307. \DC[dir %V5*.zip /w > %B:#hosttmp.fil]
  308. \ULa-[%B:#hosttmp.fil]{
  309. Enter name of ZIP file to view: `
  310. \RV9[8]  \SV9[%V5%V9]
  311. \FE-%V9.ZIP[File '%V9.ZIP' doesn't exist.{ \GB[Menu]]
  312. \DC[pkunzip -v %V9 > %B:#hosttmp.fil]
  313. \ULa-[%B:#hosttmp.fil]
  314. \GB[Menu]
  315.  
  316. |OperatorPage
  317. \II+%HR,01,02,03,04,05,06,07,08[Operator not available at this hour!{\GB[Menu]]
  318. Paging operator for 20 seconds ...{
  319. \SV8[%VF]  \LV8[10]   \\ set %V8 = first 10 letters of caller's first name
  320. \DM1[ ╔═══════════════════════════════════════╗ ]
  321. \DM2[ ║  Host Mode       OPERATOR BEING PAGED ║ ]
  322. \DM3[ ╠═══════════════════════════════════════╣ ]
  323. \DM4[ ║   <G>  = Gossip with %V8```````       ║ ]
  324. \DM5[ ║  <Tab> = SYSOP Menu                   ║ ]
  325. \DM6[ ║  <Esc> = ABORT Host Mode              ║ ]
  326. \DM7[ ║  Any other key if 'not available now'.║ ]
  327. \DM8[ ╚═══════════════════════════════════════╝ ]
  328. \AV[7]  \AL2[20]  \AV[0] {{
  329. \RE[\IK+[\EM]]            \\ Wait for any (local) keypress.  If key='G', go to
  330. \IE+%IK,G[\GB[Gossip]]    \\ Gossip block. (Tab&Esc are handled as interrupts.)
  331. Sorry, the operator isn't available now.{
  332. \GB[Menu]
  333.  
  334. |Gossip
  335. \IV3-LOCAL[\AM[G]]
  336. Please switch into your local "Gossip" module to chat with Sysop...{
  337. \ST[ » Press <Tab> for Sysop Menu. «]
  338. \RE[\IK+[%IK]]                   \\ This "tight loop" handles 2-way chatting.
  339.  
  340. |Shell
  341. \UM[|   Host user Jumped to DOS.]
  342. {{
  343. \IV3+LOCAL[\JD \GB[Menu]]      \\ if Local Host test, just Jump to DOS.
  344. \FE+%B:DOORWAY.EXE[\GB[Doorway]]     \\ Branch if doorway.exe found.
  345. Type "EXIT" to return to BOYAN-Host.{
  346. \SV0[%B:#hosttmp.bat]          \\ Create a new batch file #HOSTTMP.BAT
  347. \FE+%V0[\DC[del %V0]]          \\ which has three lines:
  348. \AF%V0[CTTY COM%MD]            \\   CTTY COM1    (or COM2,COM3,COM4)
  349. \AF%V0[COMMAND]                \\   COMMAND
  350. \AF%V0[CTTY CON]               \\   CTTY CON
  351. \DC[%B:#hosttmp]               \\ Then execute the batch file.
  352. \GB[Menu]
  353.  
  354. |Doorway
  355. Switch into the DOORWAY module of your communications program now, %VF.{
  356. \DC[%B:DOORWAY COM%MD /V:D /L: /S:* /C:dos]  \\ invoke DOORWAY
  357. \GB[Menu]
  358.  
  359. |Shutdown
  360. Are you sure you want to Shut Down the host (y/N) ? `
  361. \RV0[1]{
  362. \IV0-Y[\GB[Menu]]
  363. BOYAN Host shut down.{
  364. \IV3+MODEM[\PA[2]\HU]          \\ Pause & hang up.
  365. \PA[2]                         \\ 2-second pause...
  366. \AB                            \\ Abort script (goes to *WRAPUP block)
  367.  
  368. |NewPassword
  369. Please type your current password (asterisks will echo): `
  370. \RV8*[15]
  371. \IV8-%VP[Wrong password!{  \GB[Menu]]
  372. Type the new password you would like: `
  373. \RV8*[15]
  374. \IV8+[Blank passwords are not allowed.{  \GB[Menu]]
  375. Type this password again to confirm: `
  376. \RV9*[15]
  377. \IE-%V8,%V9[Your passwords didn't match!{  \GB[Menu]]
  378. \UM[| Caller changed password]
  379. Your password has been changed.{
  380. \SVP[%V8]
  381. \TM%VI[%VN;%VP;%VL;%VE]        \\ store change in host user base
  382. \GB[Menu]
  383.  
  384. |WrongPassword
  385. Sorry, too many attempts.{
  386. \UM[| Incorrect password '%V0'; user denied entrance.]
  387. \GB[LogOff]
  388.  
  389. |LogOff
  390. {Thank you for using BOYAN host!{{
  391. \IV3+MODEM[\PA[5]\HU~~~]
  392. \GB[Cycle]
  393.  
  394. |Cycle                         \\ This block runs between all calls.
  395. \IV3+MODEM[\HU  \PL]           \\ hang up & purge line if MODEM connection
  396. \DM1,[Host cycled %VN at %HR:%MI.]
  397. \UM[| Disconnected after %SL]  \\ add host.use message
  398. \PA[3] \SVN[] \SN[]            \\ Erase the username from %VN
  399. \GB[WaitForCall]
  400.  
  401. |*TAB                          \\ This runs automatically when <Tab> pressed
  402. \IVO+waiting[\sv9[FHJVWPRST]]  \\ available menu options if no caller logged in
  403. \IVO+in-use[\sv9[CFGHJLVWPRST]]\\ available menu options if caller IS logged in
  404. \IE-%AN,HOST[\AM[H]\EC+\LF+]   \\ make sure we're using Host module
  405. \IV3+MODEM[\PL]
  406. \SV8[%VF]  \LV8[10]   \\ set %V8 to caller's first name (10 letters)
  407. \KS  \SV0[3]
  408. ``````````\DM12,%V0[ ╔═══════════════════════════════════════╗ ]  \+V0[1]
  409. ``````````\DM12,%V0[ ║ SYSOP MENU    %HR:%MI   Boyan Host Mode ║ ]  \+V0[1]
  410. ``````````\DM12,%V0[ ╠═══════════════════════════════════════╣ ]  \+V0[1]
  411. \II+C,%V9[\DM12,%V0[ ║ <C> = Cycle Host (Hang Up)            ║ ]  \+V0[1] ]
  412. \II+F,%V9[\DM12,%V0[ ║ <F> = DOS File Manager                ║ ]  \+V0[1] ]
  413. \II+G,%V9[\DM12,%V0[ ║ <G> = Gossip with %V8```````          ║ ]  \+V0[1] ]
  414. \II+H,%V9[\DM12,%V0[ ║ <H> = Host configuration section      ║ ]  \+V0[1] ]
  415. \II+J,%V9[\DM12,%V0[ ║ <J> = Jump to DOS                     ║ ]  \+V0[1] ]
  416. \II+L,%V9[\DM12,%V0[ ║ <L> = Change caller's user Level      ║ ]  \+V0[1] ]
  417. \II+P,%V9[\DM12,%V0[ ║ <P> = Change modem Parameters         ║ ]  \+V0[1] ]
  418. \II+S,%V9[\DM12,%V0[ ║ <S> = Scroll-back buffer              ║ ]  \+V0[1] ]
  419. \II+T,%V9[\DM12,%V0[ ║ <T> = Toggle 43/50-line mode (EGA/VGA)║ ]  \+V0[1] ]
  420. \II+V,%V9[\DM12,%V0[ ║ <V> = View HOST.USE usage log         ║ ]  \+V0[1] ]
  421. \II+W,%V9[\DM12,%V0[ ║ <W> = View COMMENTS.HOS comment file  ║ ]  \+V0[1] ]
  422. ``````````\DM12,%V0[ ╟───────────────────────────────────────╢ ]  \+V0[1]
  423. \II+R,%V9[\DM12,%V0[ ║ <R> = RESUME Host Mode                ║ ]  \+V0[1] ]
  424. ``````````\DM12,%V0[ ║<Esc>= ABORT Host Mode                 ║ ]  \+V0[1]
  425. ``````````\DM12,%V0[ ╚═══════════════════════════════════════╝ ]
  426. \KO[30]  \BB+  \KV0_[SYSOP OPTION: ]  \BB-  \RS
  427. \II-%V0,%V9[\GB[*TAB]]
  428. \IV0+R[\ST[Continuing script...] \IVO+in-use[\GB[Menu] | \GB[WaitForCall]] ]
  429. \IV0+C[\GB[LogOff]]
  430. \IV0+G[\GB[Gossip]]
  431. \IV0+L[\GB[ChangeUserLevel]]
  432. \IV0+F[\FM[%V4]]
  433. \IV0+H[\CB[A] \IE-%AN,HOST[\AM[H]] ]
  434. \IV0+J[\JD]
  435. \IV0+P[\CM]
  436. \IV0+W[\DC+[%LC %V4`COMMENTS.HOS]]
  437. \IV0+S[\RB]
  438. \IV0+T[\GL*]
  439. \IV0+V[\DC+[%LC %UN]]
  440. \GB[*TAB]
  441.  
  442. |ChangeUserLevel
  443. \KS
  444. \DM1[ ╔═══════════════════════════════════════╗ ]
  445. \DM2[ ║      Setting Caller's User Level      ║ ]
  446. \DM3[ ╠═══════════════════════════════════════╣ ]
  447. \DM4[ ║  <0> - New user  (limited access)     ║ ]
  448. \DM5[ ║  <1> - Regular   (messages & files)   ║ ]
  449. \DM6[ ║  <2> - SYSOP     (Jump to DOS, etc.)  ║ ]
  450. \DM7[ ║  ( Press <Esc> to quit Host Mode. )   ║ ]
  451. \DM8[ ╚═══════════════════════════════════════╝ ]
  452. \KVL%VL[New level for %VF: ]  \RS
  453. {%VF, your user level is now %VL.{
  454. \TM%VI[%VN;%VP;%VL;%VE]              \\ store change in host user base
  455. \GB[Menu]
  456.  
  457. |*WRAPUP
  458. \IE-%AN,HOST[\EB]
  459. \DM1[ ╔═══════════════════════════════════════╗ ]
  460. \DM2[ ║          Host Mode Finished.          ║ ]
  461. \DM3[ ╠═══════════════════════════════════════╣ ]
  462. \DM4[ ║                                       ║ ]
  463. \DM5[ ║    Press <Alt-I> to re-invoke host.   ║ ]
  464. \DM6[ ╚═══════════════════════════════════════╝ ]
  465. \UF-  \IVU-[\UF+[%VU]]               \\ close HOST.USE log; reopen prev. log.
  466. \BB+ \AV[7]                          \\ sound effects back on
  467. \AM[%VR]                             \\ change back to previous action module
  468. \GB[Restore7]
  469.  
  470. |Restore7                            \\ restore your macro #7 from macro#7.hos
  471. \SV1[\AL3[0"]  \RC  \SK-  \UM[| Disconnected after "%SL"]]
  472. \FE+%B:macro#7.hos[\GV1[%B:macro#7.hos] \GV1[] \DC[del %B:macro#7.hos]]
  473. \SM7[%V1]
  474.